/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dp1.pucp.Produccion.Controlador;

import com.dp1.pucp.Modelo.Clases.Empleadoxmaquinasimulacion;
import com.dp1.pucp.Modelo.Clases.Pedidoproduccion;
import com.dp1.pucp.Modelo.Clases.Simulacion;
import com.dp1.pucp.Produccion.DAO.ProduccionDAO;
import com.dp1.pucp.Produccion.Vista.IniciarProduccionGUI;
import com.dp1.pucp.Simulacion.DAO.SimulacionDAO;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Rodrigo
 */
public class IniciarProduccionControlador {
    
    private IniciarProduccionGUI iniciarProduccionView;
    private Simulacion  simulacion;
    
    public IniciarProduccionControlador(IniciarProduccionGUI iniciarProduccionView, Simulacion simulacion){
        
        this.iniciarProduccionView=iniciarProduccionView;
        this.simulacion=simulacion;
        this.iniciarProduccionView.addCerrarListener(new cerrarListener());
        iniciarProduccionView.setTurno(simulacion.getTurno());
        ActualizarTabla();
        ProduccionDAO dao = new ProduccionDAO();
        simulacion.setEstado(6);//En produccion
        cambiarEstadoPedidos(simulacion);//cambia estado de los pedidos
        SimulacionDAO daosimu = new SimulacionDAO();
        daosimu.guardarSimulacion(simulacion);
        //dao.guardarPedidoProduccion(pedidoproduccion);
    }
    
    
    private void cambiarEstadoPedidos(Simulacion simulacion){
        ProduccionDAO dao = new ProduccionDAO();
        ArrayList<Pedidoproduccion> pedidos=dao.listarPedidosproduccion(simulacion);
        for (int i=0; i<pedidos.size();i++){
            pedidos.get(i).setEstado(2);
            dao.guardarPedidoProduccion(pedidos.get(i));
        }
    }
    
    class cerrarListener implements ActionListener {
        
        @Override
        public void actionPerformed(ActionEvent e) {
            iniciarProduccionView.mostrarAviso("Se inicio proceso de produccion");
            iniciarProduccionView.dispose();
        }
        
    }
    
    public void ActualizarTabla(){
        
        this.LimpiarDatos();
        ProduccionDAO dao = new ProduccionDAO();       
        ArrayList<Empleadoxmaquinasimulacion> lista = dao.listarEmpleadoMaquinaSimulacion(simulacion);      
        iniciarProduccionView.llenaGrilla(lista);
    }
    
    public void LimpiarDatos() {
        ((DefaultTableModel) iniciarProduccionView.getTabla().getModel()).setRowCount(0);
    }
    
}
